﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using LPrisaMVC.Entities;
using LPrisaMVC.BusinessLogic;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;

namespace LPrisaMVC.WebMVC4.Controllers
{
    public class HistorialVentaController : Controller
    {
        public HistorialVentaController()
        { 
        }

        [Dependency]
        public IHistorialVentaBL historialBL{ get; set; }

        [Authorize(Roles = "admin, ventas")]
        public ActionResult Index()
        {
            var historiales = historialBL.GetAllFromHistorialVentas();
            return View(historiales);
        }

        [HttpPost]
        [Authorize(Roles = "admin, ventas")]
        public ActionResult Index(string criterio = "", string fec1 = "", string fec2 = "", bool contado = false, bool credito = false, bool menudeo = false)
        {
            var fecha1 = new DateTime();
            var fecha2 = new DateTime();

            if (fec1 == "" && fec2 == "")
            {
                fecha1 = DateTime.Now.Date;
                fecha2 = DateTime.Now.Date;
            }
            else
            {
                fecha1 = Convert.ToDateTime(fec1);
                fecha2 = Convert.ToDateTime(fec2);
            }
            var returnHistorial = new List<HISTORIAL_VENTAS>();
            if(criterio != "" || fec1 != "" ||  fec2 != "" || contado == true ||credito == true || menudeo == true)
            {
            if (contado == true)
            {
                var historiales = historialBL.GetFromHistorialVentasbyFechasAndProductoAndContado(fecha1, fecha2, criterio, contado);
                returnHistorial = historiales;
            }
            if (credito == true)
            {
                var historiales = historialBL.GetFromHistorialVentasbyFechasAndProductoAndCredito(fecha1, fecha2, criterio, credito);
                returnHistorial = historiales;
            }
            if (menudeo == true)
            {
                var historiales = historialBL.GetFromHistorialVentasbyFechasAndProductoAndMenudeo(fecha1, fecha2, criterio, menudeo);
                returnHistorial = historiales;
            }
                return View(returnHistorial);
            }
            else
            {
                var historiales = historialBL.GetAllFromHistorialVentas();
                return View(historiales);
            }
            
        }

    }
}
